﻿namespace KuiHuaBaoDian.Services.Battle.Entity {

    /// <summary>
    /// 战斗实体承载器，无资产
    /// </summary>
    public interface IBattleEntityNoAssetVehicle : IBattleEntityAssetVehicle {
    }

    /// <summary>
    /// 战斗实体承载器
    /// </summary>
    /// <typeparam name="T">资产类型</typeparam>
    public interface IBattleEntityAssetVehicle<T> : IBattleEntityAssetVehicle {

        /// <summary>
        /// 资产实例
        /// </summary>
        new T Content { get; }
    }

    /// <summary>
    /// 战斗实体承载器
    /// </summary>
    public interface IBattleEntityAssetVehicle {

        /// <summary>
        /// 加载完成代理
        /// </summary>
        public delegate void LoadedDelegate();

        /// <summary>
        /// 加载完成事件
        /// </summary>
        event LoadedDelegate Loaded;

        /// <summary>
        /// 资产实例
        /// </summary>
        object Content { get; }
    }
}
